package accion;

import java.io.*;
//import static org.junit.Assert.*;
//import java.io.FileWriter;
//import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import org.junit.Test;
import utilitario.Utilitario;
import bean.Cuota;

public class MorososAccionTest {
/*
@Test
public void morosos(){
	MorososAccion objeto = new MorososAccion();
	
	//assertEquals(true,objeto.listaCuotasVencidas());
	assertEquals(true,objeto.listaMorosos());
}
*/

	
@Test
public void moroso(){
    FileWriter fichero = null;
    PrintWriter pw = null;
    try
    {
    	ArrayList<Cuota> _listaCuotas = new ArrayList<Cuota>();
		CuotaAccion cuotaAccion= new CuotaAccion();
		
		_listaCuotas = cuotaAccion.inicializarTablaCuotas();
		int reg=0;
		
			//Creo la variable de la ruta del fichero a consultar
			String sFichero = "c:/BD/Morosos.txt";
			File ficheroexiste = new File(sFichero);
			
			//Consulto si existe el fichero
			if(ficheroexiste.exists()){
				//Si existe lo elimino
				ficheroexiste.delete();	
				}
			
			//Creo el fichero
			 fichero = new FileWriter("c:/BD/Morosos.txt",true); 
			 pw = new PrintWriter(fichero);
			 pw.println("LISTA DE CUOTAS VENCIDAS (MOROSO)");
			 pw.println ("");
			 pw.println("  DNI " + "             Residente           " + "       Recibo    " + "   Concepto Pago    " + " F. Venc.  " + " Monto" + "     Imp.Pagado " + "   Adeuda");
			 pw.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------");
			for (Cuota cuotaDeLista : _listaCuotas) {
				
				//Consulto si el importe esta cancelado y por ende no existe deuda
				if (cuotaDeLista.getImportePago() < cuotaDeLista.getImporte()) {	
						 
						  Utilitario objUtil= Utilitario.crearUtilitario();
						  String fechaInicio=cuotaDeLista.getFechaVencimiento();
						  String fechaFin=objUtil.obtenerFechaActual();
						  
						  //Consulto si la fecha actual es mayor al de la fecha de vencimiento
						  if(objUtil.convertirCadenaPorFecha(fechaInicio).compareTo(objUtil.convertirCadenaPorFecha(fechaFin))<0){
							  pw.println(cuotaDeLista.getRecibo().getResidente().getDni() + " // " + cuotaDeLista.getRecibo().getResidente().getApellidoPaterno() + " " + cuotaDeLista.getRecibo().getResidente().getApellidoMaterno() + " " + cuotaDeLista.getRecibo().getResidente().getNombre() + " // " + cuotaDeLista.getRecibo().getCodigo() + " // " + cuotaDeLista.getConceptoPago().getDescripcion() +" // " + cuotaDeLista.getFechaVencimiento() + "  //  " + cuotaDeLista.getImporte() + "   //   " + cuotaDeLista.getImportePago()+ "   //   " + (cuotaDeLista.getImporte() - cuotaDeLista.getImportePago())); 
							  reg++;
						  }					
				}
			}
			if(reg==0){
				pw.println("No existe registros.");
			}

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
       try {
       // Nuevamente aprovechamos el finally para 
       // asegurarnos que se cierra el fichero.
       if (null != fichero)
          fichero.close();
       } catch (Exception e2) {
          e2.printStackTrace();
       }
    }
}


}